home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Original Shareware 1.1
/
The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso
/
32
/
cadence.zip
/
VOL1NO3.ZIP
/
CENTROID.BAS
next >
Wrap
BASIC Source File
|
1986-06-20
|
2KB
|
52 lines
100 ' ********************************
110 ' * CENTROID *
120 ' ********************************
130 '
140 ' Designed and implemented by:
150 ' Christopher C. Bachman
160 ' 6-15-86
170 ' THIS PROGRAM WILL EXTRACT THE X AND Y CO-ORDINATES FOR EACH CELL IN
180 ' AN AUTOCAD DXF FILE TO DETERMINE THE CENTROID OF AN AREA. CELLS ARE
190 ' CREATED BY USING THE *DOTS PATTERN WITH THE HATCH COMMAND ON LAYER 0
200 ' IN AUTOCAD. THE *DOTS PATTERN SHOULD BE THE ONLY DRAWING ENTITIES
210 ' ON LAYER 0 AND SHOULD FILL ONLY THE AREA UNDER ANALYSIS.
220 '
230 LINE INPUT "Give the DXF filename including path and extension. ",F$
240 OPEN F$ FOR INPUT AS #1
250 IF EOF(1) THEN 520
260 INPUT #1, DRAWING.ENTITY.CODE%
270 LINE INPUT #1, DRAWING.ENTITY.NAME$
280 IF DRAWING.ENTITY.NAME$ <> "LINE" THEN 250 'Test for line entities.
290 INPUT #1, DRAWING.LAYER.CODE% 'All line entities are
300 LINE INPUT #1, DRAWING.LAYER.NAME$ 'followed by layer data.
310 IF DRAWING.LAYER.NAME$ <> "0" THEN GOTO 250 'Test for lines on layer 0.
320 FOR CO.ORDINATES = 1 TO 2
330 INPUT #1, CO.ORDINATE.CODE% 'After the layer data comes
340 LINE INPUT #1, CO.ORDINATE.DATA$ 'location data for each line.
350 '
360 ' Starting X co-ordinates have a code of 10.
370 '
380 IF CO.ORDINATE.CODE% = 10 THEN X.DATA# = VAL(CO.ORDINATE.DATA$)
390 '
400 ' Starting Y co-ordinates have a code of 20.
410 '
420 IF CO.ORDINATE.CODE% = 20 THEN Y.DATA# = VAL(CO.ORDINATE.DATA$)
430 '
440 NEXT CO.ORDINATES
450 '
460 ' Accumulate totals and cell counter.
470 '
480 X.TOTAL# = X.TOTAL# + X.DATA#
490 Y.TOTAL# = Y.TOTAL# + Y.DATA#
500 NO.OF.CELLS = NO.OF.CELLS + 1
510 GOTO 250 'Loop til End of File
520 CLOSE 1 'Close Dxf file.
530 MEAN.OF.X# = X.TOTAL# / NO.OF.CELLS 'Average X value.
540 MEAN.OF.Y# = Y.TOTAL# / NO.OF.CELLS 'Average Y value.
550 '
560 ' Print results.
570 '
580 PRINT "X CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.X#
590 PRINT "Y CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.Y#
600 END